From: Florian Müllner Date: Thu, 25 Jun 2020 23:15:33 +0000 (+0200) Subject: workspacesView: Simplify syncing actual geometry X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~162 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=51fd0875d186109124894d09b74226162479e06c;p=gnome-shell.git workspacesView: Simplify syncing actual geometry We adjust the size and position of the primary view to match the workspaces display, but views on other monitors are always set to fill their monitor. Take that into account and create views with a fixed size and position, then only sync the primary view to the new geometry. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345 --- diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 9335da625..77661b287 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -21,7 +21,13 @@ var WorkspacesViewBase = GObject.registerClass({ GTypeFlags: GObject.TypeFlags.ABSTRACT, }, class WorkspacesViewBase extends St.Widget { _init(monitorIndex) { - super._init({ style_class: 'workspaces-view' }); + const { x, y, width, height } = + Main.layoutManager.monitors[monitorIndex]; + + super._init({ + style_class: 'workspaces-view', + x, y, width, height, + }); this.connect('destroy', this._onDestroy.bind(this)); global.focus_manager.add_group(this); @@ -747,16 +753,11 @@ class WorkspacesDisplay extends St.Widget { } _syncWorkspacesActualGeometry() { - if (!this._workspacesViews.length) + const primaryView = this._getPrimaryView(); + if (!primaryView) return; - let monitors = Main.layoutManager.monitors; - for (let i = 0; i < monitors.length; i++) { - let geometry = i === this._primaryIndex ? this._actualGeometry : monitors[i]; - const { x, y, width, height } = geometry; - - this._workspacesViews[i].set({ x, y, width, height }); - } + primaryView.set(this._actualGeometry); } _onRestacked(overview, stackIndices) {